数据清洗与数据集成

前提概要

在数据爆炸的时代,我们每时每刻都在产生数据;怎样在海量数据中提炼出有价值的东西,这就需要我们有一双火眼金晴;对于一个数据工作者来说,那就是对数据进行清洗与集成。
具体的分为三步骤:

  • 数据抽取、转换与装载
  • 数据清洗
  • 数据集成
    下面我们将从这三个方面进行分别讲解。

数据抽取、转换与装载

面向数据服务(或OLAP)应用的数据库,一般不运行特别复杂的数据分析任务。为了对数据进行分析,我们从这些数据库里抽取、转换和装载(Extract, Transform and Load, ETL)数据到数据仓库中,进而在它之上运行复杂的分析负载,包括OLAP分析和数据挖掘,从数据里挖掘模式和知识,如下图:

典型的数据仓库架构

在这个过程中,如果从多个异构的数据源ETL数据到数据仓库中,而且这些数据源存在各种异构性及不致性,那么就需要对数据进行集成。所以,数据集成是从多个数据源建立统一的数据禝的一种技术。
在进行ETL操作时,如果数据源的数据质量较差,在进行数据转换时,需要利用数据清洗技术,解决数据质量问题。如果数据质量得到保证,则无须数据请洗,数据的转换操作就是比较简单的,比如进行简单的规范化处理。

数据清洗

什么是数据清洗?

数据清洗是一种清除数据里面的错误,去掉重复数据的技术。它可以集成在ETL过程中,在从数据源建立数据仓库的过程中发挥作用,也可以直接运行在某个数据库上,数据经过清洗以后,最后还是保存到原来的数据库里。

数据清洗的意义

基于准确的数据(高质量)进行分析,才有可能得到可信的分析结果,基于这些结果才有可能做出正确的决策,否则,在不准确的数据上进行分析,有可能导致错误的认识和决策。据估计,数据中的异常(Anomaly)和杂质(Impurity),一般占到数据总量的5%左右。


数据质量的重要性

数据清洗往往和数据集成联系在一起,当从多个数据源进行数据集成时,通过数据清洗技术、剔除数据中的错误,以便获得高质量的数据。

数据异常的不同类型

数据清洗的目的是剔除数据中的异常。数据中的异常可分为三类:语法类异常(Syntactical),语义类异常(Semantic),覆盖类异常(Coverage Anomaly)

  • 语法类异常
    指的是表示实体的具体的数据值和格式的错误。该类异常具体可分为三种:
  1. 词法错误(Lexical Error)
    指的是实际数据的结构和指定的结构不一致。
    比如:在一张人员表中,每个实体有四个属性,分别是姓名、年龄、性别和身高,而某些记录只有三个属性,这就是语法异常。
  2. 值域格式错误(Domain Format Error)
    指的是实体的某个属性的取值不符合预期的值域中的某种格式。值域是数据的所有可能取值构成的集合。
    比如:姓名是字符串类型,在名和姓之间有一个“,”,那么“John,Smith”是正确的值,“John Smith”则不是正确的值。
  3. 不规则的取值(Irregularity)
    指的是对取值、单位和简称的使用不统一,不规范。
    比如:员工的工资字段有的用“元”作为单位,有的用“万元”作为单位。
  • 语义类异常
    指数据不能全面、无重复地表示客观世界的实体,该类异常具体可分为四种:
  1. 违反完整性约束规则(Integrity Constraint Violation)。
    指一个元组或几个元组不符合(实体完整性、参照完整性和用户自定义完整性)完整性约束规则。
    比如:我们规定中工工资字段必须大于0,如果某个员工的工资小于0,就违反了完整性约束规则。
  2. 数据中出现矛盾(Contradiction)。
    指的是一个元组的各个属性取值,或者不同元组的各个属性的取值违反这些取值的依赖关系。
    比如:我们的账单表里的账单金额为商品总金额减去折扣金额,但在数据库某个账单的实付金额不等于商品总金额减去折扣金额,这就矛盾了。
  3. 数据的重复值(Duplicate)。
    指的是两个或者两个以上的元组表示同一个实体。
  4. 无效的元组(Invalid Tuple)。
    指的是某些元组没有表示客观世界的有效实体。
    比如:员工表中有一个员工,名称叫“王超”,但是公司里并没有这个人。
  • 覆盖类异常
  1. 值的缺失(Missing Value)。指的是在进行数据采集时就没有采集到相应的数据。
  2. 元组的缺失(Missing Tuple)。指的是在客观世界中,存在某些实体,但是并没有在数据库通过元组表示出来。
数据质量

数据质量是一个比较宽泛的概念,它包含很多方面;关于数据质量的评价标准,可以组织成一个层次结构,上层数据质量标准的得分是其子标准得分的一个综合加权得分。

  1. 正确性。指数据集里所有正确的取值相对于所有取值的比例
    • 完整性(Integrity),可以再次分为:完备性和有效性;
    • 一致性(Consistency),可以再次分为:模式符合性和统一性;
    • 密度(Density),指的是所有元组里,各个属性上的缺失值占有应该存在的所有属性上的取值比例。
  2. 唯一性。是指代表相同实体的重复元组占数据集里所有元组的比例。
数据清洗的任务和过程

数据清洗是剔除数据里的异常,使得数据集成为现实世界的准确、没有重复的表示过程。
数据清选的过程可以分为四个主要步骤:

    1. 数据审计;
    1. 定义数据清洗工作流;
    1. 执行数据清洗工作流;
    1. 后续处理和控制;
数据清洗的具体方法
    1. 数据解析;
    1. 数据转换;
    1. 实施完整性约束条件;
    1. 重复数据清除;
    1. 一些统计方法;

数据集成

什么是数据集成?

在很多应用场合,人们需要整合不同来源的数据,才能获取有效的分析结果,否则,不完整的数据将导致分析结果不准确。
数据集成是指把数据从多个数据源整合在一起,提供一个观察这些数据的统一视图的过程。

数据集成需要解决的问题

数据集成要解决的首要问题是各个数据源之间的异构性(Heterogeneity)差异性
数据源之间的异构性体现在以下各方面:

  • 数据管理系统的异构性;
  • 通信协议异构性;
  • 数据模式的异构性;
  • 数据类型的异构性;
  • 取值的异构性;
  • 语义异构性;
数据模式的异构性
数据集成的模式

我们有三种基本的策略进行数据的集成,分别是联邦数据库(Federated Database)数据仓库(Data Warehousing)中介者(Mediation)

1. 联邦数据库模式

联邦数据库是最简单的数据集成模式,它需要在每对数据源之间创建映射(Mapping)转换(Transform)的软件,该软件称为包装器(Wrapper)。当数据源X需要和数据源Y进行通信和数据集成时,才需要建立X和Y之间的包装器。

联邦数据库

优点:如果我们有很多的数据源,但是仅仅需要在少数几个数据源之间进行通信和集成,联邦数据库是最合算的一种模式;
缺点:如果我们需要在很多的数据源之间进行通信和数据交换,就需要建立大量的Wrapper;在n个数据源的情况下,最多需要建立(n(n-1))/2个Wrapper,这将是非常繁重的工作。如果有数据源变化,需要修改映射和转换机制,对大量的Wrapper进行更新,变得非常困难。

2. 数据仓库模式

数据仓库是最通用的一种数据集成模式,在数据仓库模式中,数据从各个数据源拷贝过来,经过转换,然后存储到一个目标数据库中。如下图:


数据仓库

ETL:是 Extract, Transfrom, Load的缩写,ETL过程在数据仓库之外完成,数据仓库负责存储数据,以备查询。

  • 数据仓库模式下,数据集成过程即是一个ETL过程,它需要解决各个数据源之间的异构性,不一致性。
  • 数据仓库模式下,同样的数据被复制了两份:一份在数据源里;一份在数据仓库里。如何及时更新数据仓库里的数据将是需要我考虑的问题(全量更新、增量式更新)。
3. 中介者模式

数据集成的中介者模式,如下图:


中介者模式
  • 中介者(Mediator)扮演的是数据源的虚拟视图(Virtual View)的角色,中介者本身不保存作保数据,数据仍然保存在数据源中。中介者维护一个虚拟的数据模式(Virtual Schema),它把各个数据源的数据模式组合起来。
  • 数据映射和传输在查询时刻(Query Time)才真正发生。
  • 当用户提交查询时,查询被转换成对各个数据源的若干查询。这些查询分别发送到各个数据源,由各个数据源执行这些查询并返回结果。各个数据源返回的结果经合并(Merge)后,返回给最终用户。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 160,881评论 4 368
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 68,052评论 1 301
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 110,598评论 0 250
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,407评论 0 217
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,823评论 3 294
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,872评论 1 224
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 32,037评论 2 317
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,778评论 0 204
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,505评论 1 247
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,745评论 2 253
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,233评论 1 264
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,568评论 3 260
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,231评论 3 241
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,141评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,939评论 0 201
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,954评论 2 283
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,784评论 2 275

推荐阅读更多精彩内容